﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml.Linq;
using DECOR.BL.BE;
using System.Collections.Generic;
using DECOR.BL.BC;
using CM.BL.BE;

namespace DECOR.WebApp
{
    public partial class RepPendDesp : System.Web.UI.Page
    {
        private List<PedidoPosBE> _lstPedPendDesp;

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                this.cargaCombos();
                this.buscarPedidos();
            }
        }

        private void cargaCombos()
        {
            RfcConfigParametersBE objUsuarioWeb = (RfcConfigParametersBE)Session["UsuarioWeb"];

            GenericBE objBlank = new GenericBE();
            objBlank.Codigo = ""; objBlank.Descripcion = "Todos";
            List<GenericBE> lst = ClienteBC.Instance.listaCanalDist("", "");
            lst.Add(objBlank);

            cmbCanal.DataValueField = "Codigo";
            cmbCanal.DataTextField = "Descripcion";
            cmbCanal.DataSource = lst;
            cmbCanal.DataBind();
            cmbCanal.SelectedValue = "";

            lst = OficinaBC.Instance.listar();
            lst.Add(objBlank);

            cmbOficina.DataValueField = "Codigo";
            cmbOficina.DataTextField = "Descripcion";
            cmbOficina.DataSource = lst;
            cmbOficina.DataBind();
            cmbOficina.SelectedValue = "";

            lst = ClienteBC.Instance.listaOrgVtas("");
            lst.Add(objBlank);

            cmbOrgVtas.DataValueField = "Codigo";
            cmbOrgVtas.DataTextField = "Descripcion";
            cmbOrgVtas.DataSource = lst;
            cmbOrgVtas.DataBind();
            cmbOrgVtas.SelectedValue = objUsuarioWeb.OrgVentas;
        }

        private void buscarPedidos()
        {
            PersonaBE objPersona = (PersonaBE)Session["PersonaWeb"];
            if (objPersona != null)
            {
                DateTime fecIni, fecFin;
                TimeSpan ts = new TimeSpan(7,0,0,0,0);
                try
                {
                    fecIni = Convert.ToDateTime(txtFechaInicio.Text);
                    fecFin = Convert.ToDateTime(txtFechaFin.Text);
                }
                catch { fecFin = DateTime.Today; fecIni = fecFin.Subtract(ts); }
                if (string.IsNullOrEmpty(txtCodVendedor.Text)) { txtCodVendedor.Text = objPersona.CodPersona; }

                this._lstPedPendDesp = PedidoBC.Instance.ListaPendDesp(txtNumDoc.Text.Trim(), fecIni, fecFin,
                    txtCodVendedor.Text.Trim(), cmbOrgVtas.SelectedValue, cmbCanal.SelectedValue, cmbOficina.SelectedValue);

                cgvPendDesp.DataSource = this._lstPedPendDesp;
                cgvPendDesp.DataBind();

                if (this._lstPedPendDesp.Count == 0)
                {
                    Session["Mensaje"] = "No se encontró información para los parámetros seleccionados.";
                }
            }
            else
            {
                Response.Redirect("Login.aspx");
            }
        }

        protected void cgvPendDesp_RowCommand(object sender, GridViewCommandEventArgs e)
        {
        }

        protected void ibtnBuscar_Click(object sender, ImageClickEventArgs e)
        {
            try
            {
                this.buscarPedidos();
            }
            catch (Exception ex)
            {
                Session["Mensaje"] = ex.Message;
            }
            finally
            {
                ((Site)Master).muestraMensajes();
            }
        }
    }
}
